// 入口函数：
$(function () {
   get_article_type();  // 初始化文章类型
   init_tinymce()       // 初始化富文本
   get_params();        // 获取url中的id
   preview_upload();    // 上传图片预览
});

// 获取文章类型
function get_article_type() {
   myAjax('/admin/category/list', 'GET', null, function (res) {
      // console.log(res.data);
      let tplHTML = template('art_type', { data: res.data });
      $('#category').html(tplHTML);
   })
}

let tinyID = 'articleCon'
// 初始化富文本插件：
function init_tinymce() {
   tinymce.init({
      selector: '#' + tinyID,
      language: 'zh_CN',
      plugins: 'link image indent2em',
      auto_focus: true,
   });
}

let user_id;   // 编辑用户的id
// 渲染要编辑的用户数据
function init_userData(data) {
   user_id = data.id;
   // console.log(data);
   $('#inputTitle').val(data.title);
   $('.article_cover').attr('src', data.cover);
   $('#category').val(data.categoryId);
   $('#articleDate').val(data.date);
   setTimeout(() => {
      tinyMCE.editors[tinyID].setContent(data.content);
   }, 200);
}

// 获取对应id的数据：
function get_params() {
   // 获取到当前页面的url地址
   let url = window.location.href;
   // 找到url中?的索引号
   let paramsIndex = url.indexOf('?');
   // 从url中?所在的索引号开始，截取出后面的内容（也就是参数）
   let params = url.slice(paramsIndex);
   // 再将该参数的第一个字符(?)给去掉
   params = params.slice(1);
   // 将键值对分开，取后面的值
   params = params.split('=')[1];
   myAjax('/admin/article/search', 'get', { id: params }, function (res) {
      // console.log(res.data);
      let data = res.data;
      // 调用：
      init_userData(data);
   })
}

// 上传图片预览
function preview_upload() {
   $('#inputCover').change(function () {
      // 用原生对象方法获取到该二进制文件的数据
      let file = this.files[0];
      // 创建一个本地URL, 本地访问二进制文件
      let url = URL.createObjectURL(file);
      // 将本地url 赋予该文件的兄弟 img的src属性
      $(this).parent().children('img').prop('src', url);
   })
}

// 发布/草稿：
function save(type) {

   // 阻止form提交默认行为：
   $('#form').submit(function (e) {
      e.preventDefault();
   })

   // 处理数据：
   let title = $('#inputTitle').val();
   let cover = document.querySelector('#inputCover').files[0];
   let categoryId = $('#category').val();
   let date = new Date();
   // date = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate()
   date = $('#articleDate').val();
   let content = tinyMCE.editors['articleCon'].getContent();
   let stateTxt = type;

   // 创建FormData对象收纳带有二进制的数据：
   let formdata = new FormData();
   formdata.append('id', user_id);
   formdata.append('title', title);
   formdata.append('cover', cover);
   formdata.append('categoryId', categoryId);
   formdata.append('date', date);
   formdata.append('content', content);
   formdata.append('state', stateTxt);
   // console.log(formdata);
   // 请求Ajax：修改文章：
   myAjax('/admin/article/edit', 'post', formdata, function (res) {
      // console.log(res);
      layer.msg(res.msg);
      if (res.code == 200) {
         setTimeout(() => {
            window.location = './article_list.html';
         }, 800);
      }
   })
};